﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>

//int main()
//{
//	printf("%s\n", __FILE__);
//	printf("%d\n", __LINE__);
//	printf("%s\n", __DATE__);
//	printf("%s\n", __TIME__);
//	//printf("%d\n", __STDC__);
//	return 0;
//}
//
//#define MAX 1000
//#define reg register          //为 register这个关键字，创建一个简短的名字
//#define do_forever for(;;)     //用更形象的符号来替换一种实现
//#define CASE break;case        //在写case语句的时候自动把 break写上。
//// 如果定义的 stuff过长，可以分成几行写，除了最后一行外，每行的后面都加一个反斜杠(续行符)。
//#define DEBUG_PRINT printf("file:%s\tline:%d\t \
//                          date:%s\ttime:%s\n" __FILE__,__LINE__ ,       \__DATE__,__TIME__ ) 

//#define PRINTF(n) printf("a = %d\n",n)
// 
//#define PRINTF(n) printf("a"" = %d\n",n)

//#define PRINTF(n) printf(#n" = %d\n",n)
//int main()
//{
//	int b = 10;
//	PRINTF(b);
//	return 0;
//}

//#define n(x,y) x##y
//
//int main()
//{
//	int HCl = 36;
//	printf("%d", n(H, Cl));
//	return 0;
//}

//#define A 10;
//int main()
//{
//	int a = A;
//#undef A
//	int b = A;
//	return 0;
//}

//#if 常量表达式
// //... 
//#endif 
//
//#if 常量表达式
////... 
//#elif 常量表达式
////... 
//#else 
////... 
//#endif 
//
//#if defined(symbol) 
//#endif 
//
//#ifdef symbol 
//#endif 
//
//#if !defined(symbol)
//#endif 
//
//#ifndef symbol
//#endif 

//#define A 2+2
//#define B 3+3
//#define C A*B
//int main()
//{
//	printf("%d\n", C);
//	return 0;
//}

//typedef struct S
//{
//	char c;
//	int i;
//	double d;
//	short m;
//}S;
//#define OFFSETOF(type,member)  (int)&(((type*)0)->member)
//int main()
//{
//	printf("%d\n", OFFSETOF(S, c));
//	printf("%d\n", OFFSETOF(S, i));
//	printf("%d\n", OFFSETOF(S, d));
//	printf("%d\n", OFFSETOF(S, m));
//	return 0;
//}

#define SWAP(n) n=((n&0xaaaaaaaa)>>1)+((n&0x55555555)<<1)
int main()
{
	int a = 1;
	SWAP(a);
	printf("%d", a);
	
	return 0;
}